USE PGR_TSQL
GO

CREATE PROCEDURE SP_INSERTAR_SOCIO
	@PRIMER_NOMBRE VARCHAR(50),
	@PRIMER_APELLIDO VARCHAR(50),
	@DUI VARCHAR(9)
AS
	BEGIN
		INSERT INTO DETALLE_SOCIOS (PRIMER_NOMBRE, PRIMER_APELLIDO, DUI) VALUES (@PRIMER_NOMBRE, @PRIMER_APELLIDO, @DUI)
	END
GO
EXEC SP_INSERTAR_SOCIO 'JUAN', 'PEREZ', '034190837'
GO
SELECT * FROM DETALLE_SOCIOS
GO

CREATE FUNCTION FN_ANTIGUEDAD (@ANIO_LANZAMIENTO INT)
RETURNS INT
AS
	BEGIN
		DECLARE @ANTIGUEDAD INT;
		SET @ANTIGUEDAD = YEAR(GETDATE()) - @ANIO_LANZAMIENTO;
		RETURN (@ANTIGUEDAD);
	END
GO
SELECT DBO.FN_ANTIGUEDAD(2001) AS ANTIGUEDAD_LANZAMIENTO
GO

CREATE TRIGGER TGR_DUPLICAR
ON CATEGORIA
AFTER INSERT
AS
	DECLARE @CATEGORIA VARCHAR(20)
	SELECT @CATEGORIA = CATEGORIA FROM INSERTED
	INSERT INTO CATEGORIA (CATEGORIA) VALUES (@CATEGORIA + ' - COPIA')
GO
INSERT INTO CATEGORIA VALUES ('AKA')
GO
SELECT * FROM CATEGORIA
GO

ALTER TRIGGER TRG_CREAR_SP
ON DATABASE
FOR CREATE_PROCEDURE, ALTER_PROCEDURE
AS
IF DATEPART(hh, GETDATE()) > 8 AND DATEPART(hh, GETDATE()) < 14
BEGIN
	DECLARE @MENSAJE VARCHAR(1000)
	SET @MENSAJE = 'ERROR EN CREACION DE PROCEDIMIENTO ALMACENADO FUERA DE HORARIO: ' + EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'nvarchar(max)')
	RAISERROR(@MENSAJE, 10, 1)
	ROLLBACK
END
GO

CREATE PROCEDURE SP_INSERTAR_SOCIO_2
	@PRIMER_NOMBRE VARCHAR(50),
	@PRIMER_APELLIDO VARCHAR(50),
	@DUI VARCHAR(9)
AS
	BEGIN
		INSERT INTO DETALLE_SOCIOS (PRIMER_NOMBRE, PRIMER_APELLIDO, DUI) VALUES (@PRIMER_NOMBRE, @PRIMER_APELLIDO, @DUI)
	END
GO
